Hadoop完全分布式集群搭建(基于CentOS系统) 您所在的位置:网站首页 centos 集群配置 Hadoop完全分布式集群搭建(基于CentOS系统)

Hadoop完全分布式集群搭建(基于CentOS系统)

2023-07-28 09:37| 来源: 网络整理| 查看: 265

观看此文章的基础为已经有一些虚拟机基础和Linux命令基础。

准备工作 所需工具: 链接:https://pan.baidu.com/s/1d6Go7c4iNHcoxLBfEjhbkg?pwd=84fr 提取码:84fr

配置文件: (天翼云盘)https://cloud.189.cn/t/nAzUV3Y7Rzaa

新建三个文件夹。最好在磁盘预留30G左右空间用于安装三台虚拟机。

在这里插入图片描述

在VMWare WorkStation Pro中先新建主节点(master) 在这里插入图片描述

最好是最小安装版本的 在这里插入图片描述

先确认虚拟机是否可以联网 ping www.baidu.com (正常安装后可以联网) 如图所示可以联网,然后可以ctrl+c停掉 在这里插入图片描述

安装网络工具:yum install net-tools(会出现y/n的选项 输入yes即可)

输入 ifconfig 出现ip地址即可 在这里插入图片描述

安装ssh服务:yum -y install openssh-server 、yum -y install openssh-clients 在这里插入图片描述

克隆master虚拟机(虚拟机右键管理有克隆选项,需要先把虚拟机关机) 克隆后的两台虚拟机分别为slave01 slave02 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

克隆完成后,将三台虚拟机进行开机登录操作,并输入 ifconfig 查看ip并单独记录下来 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

安装Xshell工具 在这里插入图片描述 在这里插入图片描述

使用Xshell去远程连接虚拟机(三台都要连接) 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

注意:从接下来的步骤开始,后续会有三个虚拟机都执行的命令,三个虚拟机都执行的命令我用加粗斜体表示。

设置Xshell公共执行命令窗口: 在这里插入图片描述 在这里插入图片描述关闭防火墙(三台虚拟机都执行):systemctl stop firewalld.service 禁止firewall开机启动(三台虚拟机都执行):systemctl disable firewalld.service 在这里插入图片描述分别修改主机名(三台虚拟机都执行): vi /etc/hostname 将其修改成 master slave01 slave02 重启后输入hostname生效 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述配置 /etc/hosts文件,追加以下内容(三台虚拟机都执行) 命令为 vi /etc/hosts : 192.168.91.131 master ----->前面一定要是你的虚拟机名称所对应的ip地址 192.168.91.132 slave01 192.168.91.133 slave02 在这里插入图片描述生成公钥和私钥并设置无密码登录 (1)生成公钥和私钥(三台虚拟机都执行) ssh-keygen -t rsa 一路回车即可(三次回车) 在这里插入图片描述 (2)将公钥追加到到authorized_keys中并赋予authorized_keys 600权限(三台虚拟机都执行): cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys 在这里插入图片描述 (3)将master节点上的authoized_keys远程传输到slave01和slave02的~/.ssh/目录下(仅在master虚拟机执行) scp /root/.ssh/authorized_keys root@slave01:/root/.ssh/ scp /root/.ssh/authorized_keys root@slave02:/root/.ssh/ 在这里插入图片描述 在这里插入图片描述 (4)验证无密码登录 : ssh slave01 不需要输入密码即可登录 exit:退出 (master虚拟机执行) 在这里插入图片描述配置Java环境(此步骤要在master虚拟机中执行) (1)安装jdk和hadoop 使用 winscp 进行传输(master虚拟机执行) (2)在master虚拟机上创建一个software目录 cd/opt/ mkdir software 在这里插入图片描述 (3)使用winscp连接到master虚拟机,将jdk和hadoop的压缩包传到/opt/software目录下 在这里插入图片描述 在这里插入图片描述 (4)在master中进行jdk的解压操作:tar zxvf jdk-8u241-linux-x64.tar.gz 修改文件名为: mv jdk1.8.0_241/ jdk1.8 在这里插入图片描述 (5)在master中配置jdk环境变量: vi /etc/profile 在末尾追加:

export JAVA_HOME=/opt/software/jdk1.8 export JRE_HOME=/opt/software/jdk1.8/jre CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export HADOOP_HOME=/opt/software/hadoop-2.6.5 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

在这里插入图片描述 (6)在master中刷新环境变量 source /etc/profile 验证是否安装成功: java -version 、javac 在这里插入图片描述 16. 配置hadoop环境(此步骤要在master虚拟机中执行) (1)解压hadoop:tar zxvf hadoop-2.6.5.tar.gz (2)解压后在hadoop安装目录下创建tmp、logs、hdfs、hdfs/name、hdfs/data五个文件夹 在这里插入图片描述 (3)使用winscp软件进行配置文件的更改:配置文件都在hadoop2.6.5/etc/hadoop下(注意修改后保存) ① hadoop-env.sh 修改第25行的 ${JAVA_HOME}为自己的jdk安装目录(/opt/software/jdk1.8) 在这里插入图片描述 在这里插入图片描述 ② yarn-env.sh 修改第23行, 解注释(export JAVA_HOME=/home/y/libexec/jdk1.6.0/) 修改为自己的jdk安装目录(/opt/software/jdk1.8) 在这里插入图片描述 在这里插入图片描述 ③ slaves 将localhost 改为slave01 slave02 在这里插入图片描述 在这里插入图片描述 ④ 配置 core-site.xml文件 在这里插入图片描述 在这里插入图片描述 ⑤ 配置hdfs-site.xml文件 在这里插入图片描述 在这里插入图片描述 ⑥ 配置yarn-site.xml文件 在这里插入图片描述 在这里插入图片描述 ⑦ 在master命令行中执行以下命令(在opt/software/hadoop-2.6.5/etc/hadoop/目录下执行) cd /opt/software/hadoop-2.6.5/etc/hadoop/ cp mapred-site.xml.template mapred-site.xml 在这里插入图片描述 ⑧ 修改mapred-site.xml文件 在这里插入图片描述 在这里插入图片描述 (4)将master中配置好的环境通过scp命令传递给slave01和slave02 ① 在master中将software文件夹拷贝到slave01和slave02的opt目录下 scp -r /opt/software/ root@slave01:/opt/ scp -r /opt/software/ root@slave02:/opt/ ② 在master中将/etc/profile文件拷贝到slave01heslave02的/etc目录下 scp /etc/profile root@slave01:/etc/ scp /etc/profile root@slave02:/etc/ 在这里插入图片描述 ③ 刷新slave01和slave02中的环境变量 验证java和hadoop是否配置成功(可以三台虚拟机都执行) source /etc/profile:刷新 java -version && java & javac:验证java环境变量 hadoop version:验证hadoop环境变量 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 (5)锁定时间同步(三台虚拟机都执行) ① 安装时间同步软件ntpdate yum -y install ntp ntpdate 在这里插入图片描述 ② 和网络时间进行同步 ntpdate cn.pool.ntp.org 在这里插入图片描述 ③ 把时间写入硬件进行锁定 hwclock --systohc 在这里插入图片描述 (6)在master中进行格式化操作 ① 进入hadoop-2.6.5/bin目录 cd /opt/software/hadoop-2.6.5/bin/ 在这里插入图片描述 ② 执行以下命令进行格式化: ./hdfs namenode -format

出现successfully formatted 表示成功如果没有成功,做以下操作: a. 检查并修改出错的配置文件(修改后一定要传给slave01和slave02一份) 将特定的配置文件传递给slave01或slave02: scp /opt/software/hadoop-2.6.5/etc/hadoop/mapred-site.xml root@slave02:/opt/software/hadoop-2.6.5/etc/hadoop/ b. 删除三个主机上的hdfs中的name和data文件夹(三台虚拟机都执行) cd /opt/software/hadoop-2.6.5 rm -rf hdfs/ 在这里插入图片描述 c. 重新新建hdfs目录和hdfs/data 和hdfs/name 目录(三台虚拟机都执行) mkdir /opt/software/hadoop-2.6.5/hdfs mkdir /opt/software/hadoop-2.6.5/hdfs/data mkdir /opt/software/hadoop-2.6.5/hdfs/name 在这里插入图片描述 d. 重新格式化(master中执行) ./hdfs namenode -format 在这里插入图片描述 启动集群服务(master中执行) (1)启动hdfs服务: ① 进入到特定目录 cd /opt/software/hadoop-2.6.5/sbin/ ② 启动hdfs服务 ./start-dfs.sh ③ 查看当前进程 jps ④ 出现以下结果代表集群启动成功:启动 master中输入jps出现 NameNode 和 SecondaryNameNode slave01 和 slave02中注入jps出现 DataNode 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 (2)启动yarn服务 ① 进入到特定目录 cd /opt/software/hadoop-2.6.5/sbin/ ② 启动yarn服务 ./start-yarn.sh ③ 出现以下结果代表集群启动成功:启动 master中输入jps多了 ResourceManager slave01 和 slave02中注入jps多了 NodeManager 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 (3) 同时启动hdfs和yarn服务:直接执行 hdfs-all.sh测试(访问相关网站) (1)访问http://192.168.216.129:50070 在这里插入图片描述 (2)访问:http://192.168.216.129:8088 在这里插入图片描述 到此就全部结束了!

HDFS常用命令: hdfs dfs -mkdir /test:在hdfs根目录创建一个名为test的空目录(hadoop fs -mkdir /test); hdfs dfs -ls /:查看根目录文件; hdfs dfs -put /opt/software/upload.txt /test:上传指定文件到hdfs指定目录; hdfs dfs -get /test/upload.txt /opt/software/:下载hdfs中指定文件到本地的指定目录。 在这里插入图片描述

开启、关闭集群操作:

开启VMware分别启动三台虚拟机使用xshell连接虚拟机开启集群 start-all.sh(只在master中执行) …关闭集群 stop-all.sh(只在master中执行) 在这里插入图片描述


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有